1. Field of the Invention
This invention relates to distributed computer networks and, more particularly, to peer-to-peer overlay network creation.
2. Description of the Related Art
Distributed computing has become increasingly popular as the capabilities of the Internet have begun to be realized. Particularly, peer-to-peer (p2p) networking has seen rapid growth. As used herein, a peer-to-peer network is generally used to describe a decentralized network of peer nodes where each node may have similar processing capabilities. Further and in contrast to a traditional client-server network, participating peers in a P2P network may communicate directly with each other. Work may be done and information may be shared through interaction between the peers. In addition, in a p2p network, a given peer node may be equally capable of serving as either a client or a server.
The Internet may be thought of as an underlying network of potential nodes interconnected via an Internet protocol (IP). For example, one such protocol is a transport control protocol/Internet protocol (TCP/IP) protocol, where any connected node may talk to any other connected node. Another example may be a user datagram protocol/Internet protocol UDP/IP. For various reasons, a given p2p network may be created having a subset of all the interconnected nodes. This subset of nodes may be referred to as an overlay network. This network behavior may be true for other types of networks as well. FIG. 1 illustrates a system diagram of multiple nodes interconnected via a p2p network. The system includes multiple nodes 20A-E physically interconnected through a network 10. As described above, each of nodes 20A-E may communicate directly with each other node.
In addition, an overlay network need not necessarily have the same topology as the underlying physical connections. For example, if a network includes three nodes connected such that a first node is connected to a second node which is connected to a third node, the overlay may show the network as the first node connected to the third node. This may be possible since a TCP/IP connection may be made between any two nodes.
The overlay network may be created to fulfill some specific need or it may be created as a general-purpose network. Overlay networks may also be created to enhance network manageability or to ensure that only trusted nodes are included in the subset. For example, many p2p networks are created to deliver one type of service and thus typically run one application. For example, Napster was created to enable users to share music files, while Gnutella was created for general-purpose file sharing. Examples of early versions of p2p networks are USENET and FidoNet®. These decentralized applications were primarily for newsgroups and messaging among peers, respectively. However, p2p networks are not limited to file sharing or messaging applications. Some p2p networks may be used for distributed computing and distributed information storage. FIG. 2 illustrates another system diagram showing multiple nodes interconnected via a p2p network. This system includes multiple nodes 10A-E physically interconnected through a network 100. However, a subset of the nodes are communicating with one another via a peer-to-peer overlay network 150.
Each network may exhibit certain characteristics such as communication latency, for example. The intended use of a particular overlay network may dictate which network characteristics may be desirable. Once the desirable characteristics have been identified, choosing which subset of nodes each node connects to may determine the structure and characteristics that a given overlay network may exhibit. Depending on the criteria used to interconnect the nodes, the network may become unmanageable or inflexible and in a worst case, inoperable. There are many overlay network applications available and each has advantages and disadvantages. In some overlay networks, a node may join a particular network based on similar interests. Other overlay networks may make use of a random walk of all nodes in the network. Still others may employ mathematical methods using node IDs. However it may be difficult to build a p2p overlay network having certain desirable characteristics without the use of a central server or without global network state knowledge.